UPDATE 语句

发表于 2018-3-5 20:59:57 | 分类于 SQL |

UPDATE 语句

UPDATE 语句用于更新表中已存在的记录。

语法

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

注意

SQL UPDATE 语句中的 WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE 子句,所有的记录都将被更新!

示例

样本数据库与 SELECT 语句 一章相同。

UPDATE 示例

把 "菜鸟教程" 的 alexa 排名更新为 5000,country 改为 USA:

UPDATE Websites 
SET alexa='5000', country='USA' 
WHERE name='菜鸟教程';

输出结果:

mysql> UPDATE Websites 
    -> SET alexa='5000', country='USA' 
    -> WHERE name='菜鸟教程';

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 5000  | USA     |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+

Update 警告!

在更新记录时要格外小心!在上面的实例中,如果省略了 WHERE 子句,如下所示:

UPDATE Websites
SET alexa='5000', country='USA'

执行以上代码会将 Websites 表中所有数据的 alexa 改为 5000,country 改为 USA。

执行没有 WHERE 子句的 UPDATE 要慎重,再慎重。

在 MySQL 中设置参数

在 MySQL 中可以通过设置 sql_safe_updates 这个自带的参数来解决,当该参数开启的情况下,你必须在 update 语句后携带 where 条件,否则就会报错。

set sql_safe_updates=1; 表示开启该参数